String.prototype.trim = trim_string;
function trim_string() {
    var ichar, icount;
    var strValue = this;
    ichar = strValue.length - 1;
    icount = -1;
    while (strValue.charAt(ichar)==' ' && ichar > icount)
        --ichar;
    if (ichar!=(strValue.length-1))
        strValue = strValue.slice(0,ichar+1);
    ichar = 0;
    icount = strValue.length - 1;
    while (strValue.charAt(ichar)==' ' && ichar < icount)
        ++ichar;
    if (ichar!=0)
        strValue = strValue.slice(ichar,strValue.length);
    return strValue;
}


function validateNotNull(item) {
    var strError = item.label + " es un dato obligatorio.";
    item.value=item.value.trim();		 
    if (item.value.length == 0) {
        return false;
    }	 
    return true;
}


function validateEmptyFields(item1, item2) {
    if (validateNotNull(item1) && validateNotNull(item2))
        onsubmit();
    else
        alert("Los datos Usuario y Contraseña son requeridos para ingresar al sistema");
}
 
function show( item ){
    if (item.style.display == "none")
        item.style.display="block"
    else
        item.style.display="none"
} 
 
 

function validateEmptyFields(item1, item2, form) {
    if (validateNotNull(item1) && validateNotNull(item2))
      form.submit();
    else
        alert("Los datos Usuario y Contraseña son requeridos para ingresar al sistema");
}
 

function validateInteger(item) {
    var strError = item.label + " debe ser un valor numérico entero.";
    var integer = "0123456789";		 
    for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
        if (integer.indexOf(item.value.charAt(intLoop)) == -1) {
            return false;
        }
    }		 
    return true;
}
 
function validateAlphabet(item) {
    var integer = "0123456789<>%";
    var thisCharacter;	
    for( var i=0; i<item.value.length; i++) {
        thisCharacter = item.value.substring(i,i+1);
        if ( integer.indexOf(thisCharacter,0) != -1){
            return false;
        }
    }
    return true;
}
 
function validateDecimal(item) {
    var strError = item.label + " debe ser un valor numérico decimal.";
    var decimal = ".0123456789";		 
    for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
        if (decimal.indexOf(item.value.charAt(intLoop)) == -1) {
            return false;
        }
    }		 
    if (item.value.indexOf(".")!=item.value.lastIndexOf(".")) {
        return false;
    }
    return true;
}
 
function validatePercentage(item) {
    var percentage = ".0123456789";		 
    for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
        if (percentage.indexOf(item.value.charAt(intLoop)) == -1) {
            return false;
        }
    }		 
    if (item.value.indexOf(".")!=item.value.lastIndexOf(".")) {
        return false;
    }		 
    var ptg = parseInt(item.value);		 
    if (ptg < 0 || ptg > 100) {
        return false;
    }		 
    return true;
}
 

function validatePhone(item) {
    if( item.value.length < 7 )
        return false;	 
    else if (( item.value.length > 7 )&&( item.value.length < 10 ))
        return false;
    return true;
}
 
function validateDate(item) {
    var strError = item.label  + " debe ser una fecha válida con formato AAAA-MM-DD.";

    if (!(/^\d{4}\-\d{2}\-\d{2}$/.test(item.value))) {
        return false;
    }		 
    var d = item.value.split("-");		 
    if (isNaN(new Date(fecha[0],fecha[1],fecha[2]))) {
        return false;
    }		 
    return true;
}
 
function validateEmail(item) {   
    item.value=item.value.trim();
    if (!(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(item.value))) {
        return false;
    }		 
    return true;
}
 
function validateEquals(item1,item2){
    if(item1.value == item2.value )
        return true;
    return false;
}

function validateDates(anioActual,mesActual,diaActual,anio,mes,dia){
    var actualDate = new Date(anioActual.value,mesActual.value,diaActual.value);
    var dt = new Date(anio.value,mes.value,dia.value);
    if(dt < actualDate){
        return false;
    }
    return true;												
}
	
function passwordEqual(c1, c2) {
    return c1.value == c2.value;
}
	
function validateEspecialCharacters(string) {
    var excepciones = /[$\\<\>\%]/;
    if(string.value.search(excepciones) == -1) {
        alert("No puede ingresar caracteres < , > , %");
        return true;
    }
    return false;
}
	
//// validaciones para fechas 

//El array \"DaysInMonth\" contiene los dias que tiene cada mes
var DaysInMonth = new Array()
DaysInMonth[0] = 31  //Los dias que tiene Enero
DaysInMonth[1] = 29  //Los dias que tiene Febrero se calculan mas adelante por si el año es bisiesto
DaysInMonth[2] = 31  //Los dias que tiene Marzo
DaysInMonth[3] = 30  //Los dias que tiene Abril
DaysInMonth[4] = 31  //Los dias que tiene Mayo
DaysInMonth[5] = 30  //Los dias que tiene Junio
DaysInMonth[6] = 31  //Los dias que tiene Julio
DaysInMonth[7] = 31  //Los dias que tiene Agosto
DaysInMonth[8] = 30  //Los dias que tiene Septiembre
DaysInMonth[9] = 31  //Los dias que tiene Octubre
DaysInMonth[10] = 30 //Los dias que tiene Noviembre
DaysInMonth[11] = 31 //Los dias que tiene Diciembre


function IsUnsignedInteger(YourNumber){
    return !(isNaN(parseInt(YourNumber)));
}

function IsDay(YourDay, YourMonth){
    if (IsUnsignedInteger(YourDay) && IsMonth(YourMonth)) {
        return (parseInt(YourDay) > 0 && parseInt(YourDay) <= DaysInMonth[YourMonth - 1]) ? 1 : 0 
    }
    else return 0 
}

function IsMonth(YourMonth){
    if (IsUnsignedInteger(YourMonth))	{
        return (parseInt(YourMonth) > 0 && parseInt(YourMonth) <= 12) ? 1 : 0 
    }
    else return 0 
}

function IsYear(YourYear){
    if (IsUnsignedInteger(YourYear))	{
        return  (parseInt(YourYear) > 1920 && parseInt(YourYear) < 3000) ? 1 : 0
    }
    else return 0
}

function IsLeapYear(YourYear){
    if (IsUnsignedInteger(YourYear)){
        return ((YourYear % 4 == 0 && YourYear % 100 != 0) || (YourYear % 400 == 0)) ? 1 : 0
    }
    else return 0 
}

//La funcion \"IsDate(YourDate, YourDateSeparator)\" chequea si \"YourDate\" es una fecha valida con el separador de fecha \"YourDateSeparator\"
//Las variables \"YourDate\" y \"YourDateSeparator\" son cadenas de caracteres

function IsDate(YourDate, YourDateSeparator){
    var IsAllOK = 1 
    var YourDateParts = new Array() 
    YourDateParts = YourDate.split(YourDateSeparator) 
    var Year = YourDateParts[0] 
    var Month = YourDateParts[1] 
    var Day = YourDateParts[2] 
    if (IsYear(Year) && !IsLeapYear(Year)){
        DaysInMonth[1] = 28
    }
    else if (IsYear(Year) && IsLeapYear(Year)){
        DaysInMonth[1] = 29 
    }
    else IsAllOK = 0 
    IsAllOK = (IsMonth(Month)) ? IsAllOK : 0 
    IsAllOK = (IsDay(Day, Month)) ? IsAllOK : 0 
    return IsAllOK 
}


function valida(doc) {
    doc=doc.split('-').join('/');
    f1=new Date(doc);
    f2=new Date();
    if (f1<f2)
        alert('La fecha no puede ser anterior !!');
}
function validateTextArea(item){
      if( item.value.length < 50 )
        return false;	 
    else if (( item.value.length > 50 )&&( item.value.length < 500 ))
        return false;
    return true;
}

function validateLogin(doc) {
    p = doc.getElementById('email').value;
    l = doc.getElementById('passwd').value;
    if ((p.trim().length == 0)||(l.trim().length == 0)){
        alert("Debe digitar los datos Usuario y Contraseña para ingresar al sistema");
        return false;
    }
    return true;
}

function validatePerson(doc) { 
    nameuser = doc.getElementById('name').value;
    lastuser = doc.getElementById('last_name').value;
    //doctype = doc.getElementById('doctype').value;
    docnum = doc.getElementById('numdoc').value;
    passwd = doc.getElementById('pass_wd').value;
    passwd2 = doc.getElementById('passwd2').value;
    mail = doc.getElementById('email').value;
    address = doc.getElementById('address').value;
    phone = doc.getElementById('phone').value;
   if  ((nameuser.trim().length == 0)||(lastuser.trim().length == 0)||
        (docnum.trim().length == 0)||(passwd.trim().length == 0)||(passwd2.trim().length == 0)||
        (mail.trim().length == 0)||(address.trim().length == 0)||(phone.trim().length == 0)){
        alert('Falto por llenar algun campo');
        return false;
    }
    if (!validateInteger(doc.getElementById('numdoc'))) {
        alert('El numero del documento no tiene un formato valido');
        return false;
    }
    if (!validatePhone(doc.getElementById('phone'))) {
        alert('Este formato de telefono no es valido');
        return false;
    }
    if (doc.getElementById('pass_wd').value !== doc.getElementById('passwd2').value) {
        alert('Las Contraseñas no son iguales');
        return false;
    }
    return true;
}

function validateRegDisease(doc) {
    name = doc.getElementById('namedisease').value;
    symptoms = doc.getElementById('symptoms').value;
    tratamient = doc.getElementById('tratamient').value;
    
    if  ((name.trim().length == 0) ||(symptoms.trim().length == 0) ||(tratamient.trim().length == 0)) {
        alert('Falto por llenar algun campo');
        return false;
    }
    
    if (validateTextArea(doc.getElementById('symptoms'))) {
        alert('El numero maximo de caracteres es de 500');
        return false;
    }
    if (validateTextArea(doc.getElementById('tratamient'))) {
        alert('El numero maximo de caracteres es de 500');
        return false;
    }
 /* if (doc.getElementById('contcomp').value != doc.getElementById('contcomp2').value) {
        alert('Las contraseñas son diferentes');
        return false;
    }  */
    return true;
}


function validateRace(doc){
    tenderness = doc.getElementById('tenderness').value;
    imgrace = doc.getElementById('imgrace').value;
    
   // if  ((tenderness.trim().length == 0)||(imgrace.trim().length == 0)) {
     //   alert('Falto por llenar algun campo');
      //  return false;
   // }
    
    if (!validateDecimal(doc.getElementById('tenderness'))){
        if (parseFloat(tenderness) >= 3 && parseFloat(tenderness) <= 12){
            alert('El rango admitido es de 3 a 12');
            return false;
        }
    }
    return true;
}


function validateFood(doc){
    nameFood = doc.getElementById('namefood').value;
    ndt = doc.getElementById('ndt').value;
    dryMatterFood = doc.getElementById('dryMatterFood').value;
    eng = doc.getElementById('eng').value;
    crudeProtein = doc.getElementById('crudeProtein').value;
    enm = doc.getElementById('enm').value;
    calcium = doc.getElementById('calcium').value;
    em = doc.getElementById('em').value;
    phosphorus = doc.getElementById('phosphorus').value;
    
     if  ((nameFood.trim().length == 0) ||(ndt.trim().length == 0) ||(dryMatterFood.trim().length == 0)||
             (eng.trim().length == 0) ||(crudeProtein.trim().length == 0)||(enm.trim().length == 0)
             ||(calcium.trim().length == 0)||(em.trim().length == 0)||(phosphorus.trim().length == 0)){
        alert('Falto por llenar algun campo');
        return false;
    }
    
    if (!validateDecimal(doc.getElementById('ndt'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    if (!validateDecimal(doc.getElementById('dryMatterFood'))){
        alert('ingrese un numero decimal');
        return false;
    }
    
    if (!validateDecimal(doc.getElementById('eng'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    if(!validateDecimal(doc.getElementById('crudeProtein'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    if(!validateDecimal(doc.getElementById('enm'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    if (!validateDecimal(doc.getElementById('calcium'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    if (!validateDecimal(doc.getElementById('em'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    if(!validateDecimal(doc.getElementById('phosphorus'))){
        alert('Ingrese un numero decimal');
        return false;
    }
    
    return true;
}

function validateLand(doc){
 landname = doc.getElementById('lname').value;
 
 if(landname.trim().length == 0){
     alert('Falto por llenar el nombre de la Finca');
     return false;
  }
  return true;
}


function validateBatch(doc){
 batchname = doc.getElementById('bname').value;
 animalnum = doc.getElementById('animalbatch').value;
 
 if((batchname.trim().length == 0)||(animalnum.trim().length == 0)){
     alert('Falta por llenar algun campo');
     return false;
 }
 
 if (!validateInteger(doc.getElementById('animalnum'))){
     alert('La cantidad de animales debe ser un numero entero');
     return false;
 }
return true;
}


function validarCamposLotes(doc) {
    c = doc.getElementById('cantidad').value;
    p = doc.getElementById('propietario').value;
    pp = doc.getElementById('pesoprom').value;
    t = doc.getElementById('tipo').value;
    r = doc.getElementById('raza').value;
    pc = doc.getElementById('proc').value;
    cl = doc.getElementById('clase');
    ep = doc.getElementById('edadpro').value;
    h = doc.getElementById('heren').value;
    pm = doc.getElementById('premin');
    i = doc.getElementById('imag');
    v = doc.getElementById('video');
    s = doc.getElementById('idsubasta');
    
    if  ((c.trim().length == 0) ||(p.trim().length == 0) ||(pp.trim().length == 0) ||(t.trim().length == 0) 
        ||(r.trim().length == 0)||(pc.trim().length == 0)||(cl.trim().length == 0)||(ep.trim().length == 0)
        ||(h.trim().length == 0)||(pm.trim().length == 0)||(i.trim().length == 0)||(v.trim().length == 0)
        ||(s.trim().length == 0)) {
        alert('Falto por llenar algun campo');
        return false;
    }
    if (!validarNumeroEntero(doc.getElementById('cantidad'))) {
        alert('la cantidad no tiene un formato valido');
        return false;
    } 
    if (!validarNumeroEntero(doc.getElementById('cpremin'))) {
        alert('El precio minimo no tiene un formato valido');
        return false;
    }
    return true;
}

function validarCamposSubasta(doc) {
    t = doc.getElementById('tiposub').value;
    d = doc.getElementById('fec').value;
    h = doc.getElementById('hora').value;
    m = doc.getElementById('minuto').value;
    
    if  ((t.trim().length == 0) ||(d.trim().length == 0) ||(h.trim().length == 0) ||(m.trim().length == 0)) {
        alert('Falto por llenar algun campo');
        return false;
    }
    if (!validarNumeroEntero(doc.getElementById('hora'))) {
        alert('la hora no tiene un formato valido');
        return false;
    } 
    if (!validarNumeroEntero(doc.getElementById('minuto'))) {
        alert('El minuto no tiene un formato valido');
        return false;
   
    }
    if (!valida(doc.getElementById('fec'))) {
        alert('La Fecha no puede ser menor a la fecha actual');
        return false;
    }
    return true;
}

function validarCamposPerfil(doc) {
    d = doc.getElementById('direccion').value;
    em = doc.getElementById('email').value;
    t = doc.getElementById('telefono').value;
    c = doc.getElementById('contra').value;
    
    if  ((d.trim().length == 0) 
        ||(em.trim().length == 0)||(c.trim().length == 0)||(t.trim().length == 0)) {
        alert('Falto por llenar algun campo');
        return false;
    }
    return true;
}